home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / satellit / pacdoc / fhead.doc < prev    next >
Text File  |  1990-09-05  |  25KB  |  656 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                        Pacsat File Header Definition
  8.  
  9.                                                 
  10.                              Jeff Ward, G0/K8KA
  11.                            Harold E. Price, NK6K
  12.                                                
  13.  
  14.                                   ABSTRACT
  15.  
  16.  
  17.      A flexible encoding method for PACSAT file headers is described, 
  18.      and ``Mandatory'', ``Extended'' and ``Optional'' Headers are 
  19.      defined.  These headers are supplied by the programs which send 
  20.      files and/or messages to PACSAT, and by on-board programs which 
  21.      build files/messages intended for downloading.  PACSAT file head-
  22.      ers are present in all files stored on PACSAT.
  23.  
  24.  
  25.  
  26. 1.0 BACKGROUND
  27.  
  28. PACSAT is a file and message switch, a BBS and a data generating device.  
  29. Files may be generated by onboard processes such as telemetry gathering pro-
  30. grams, SEU monitor programs, or imaging cameras.  Files will also be used to 
  31. hold the messages in the PACSAT on-board BBS.  Files and messages will be sent 
  32. and received by many nodes: forwarding gateways, individual user stations, 
  33. command stations, and various on-board tasks.  To conserve on-board storage 
  34. space and communications link time, files may be compressed by a variety of 
  35. compression methods.  
  36.  
  37. To ensure that these files can be properly identified and processed, each file 
  38. stored on PACSAT will begin with several header items.  Some header items will 
  39. be present on every PACSAT file; these are described below as the Mandatory 
  40. Header.  Another group of items must be present on all files which contain 
  41. ``messages''; these are described as the Extended Header.  Additional special-
  42. purpose or user-defined items are described under the Optional Header.
  43.  
  44. The primary objectives of the PACSAT File Header standard are to 
  45.  
  46. (1) encode all header items in a standardized manner; 
  47.  
  48. (2) maintain complete separation between the file/message header and the 
  49. file/message body; 
  50.  
  51. (3) provide for expansion through easy incorporation of additional header 
  52. items.
  53.  
  54. 1.1  Overview of the PACSAT File Header System
  55.  
  56. Every PACSAT file will start with the byte 0xaa followed by the byte 0x55.  
  57. This flag is followed by the rest of the PACSAT File Header (PFH).  A valid 
  58. PFH contains all of the items of the Mandatory Header (Section  3), and it may 
  59. also contain all items of the Extended Header (Section 4) and any number of 
  60. Optional Header items (Section 5).  All HEADER ITEMS are encoded using a 
  61. standard syntax, described in Section 2.  
  62.  
  63. The PFH is terminated by a special header item, after which the file body 
  64. begins.
  65.  
  66. Thus, there are 3 forms of PACSAT file header:
  67.  
  68. <0xaa><0x55><Mandatory hdr><Hdr end>
  69.  
  70. <0xaa><0x55><Mandatory hdr><Extended hdr><Hdr end>
  71.  
  72. <0xaa><0x55><Mandatory hdr><Extended hdr>[<Optional    Items> . . . ]<Hdr end>
  73.  
  74.  
  75. 2.0 PACSAT HEADER ITEM SYNTAX
  76.  
  77. All PACSAT file header items follow a single format, simplifying both specifi-
  78. cation and implementation of the PACSAT File Header.  The format is:
  79.  
  80. <id><length>[<data> . . . ]
  81. 2.1 <id>
  82. The id is a 2-byte integer in which the bits have the following meaning:
  83.  
  84. bit 15            0 this is an system-defined item.
  85.                  1 this is an experimental, user defined item. 
  86.  
  87. bits 0-14         form the 15-bit unsigned binary number identifying the 
  88.                  item.
  89.  
  90. The <id>, allows some 32,000 system-defined and 32,000 user defined items.  
  91. <id> like all multi-byte integers is stored least-significant byte first.  
  92. Refer to the PACSAT Data Specification Standards document for further informa-
  93. tion.
  94.  
  95. 2.2 <length>
  96.  
  97. This field is an 8-bit unsigned binary integer giving the number of <data> 
  98. bytes present.  Even if the size of the data item is fixed, the length is 
  99. still present.
  100.  
  101. 2.3 <data>
  102.  
  103. The <data> bytes may hold any type of information.  
  104.  
  105. Encoding rules for system-defined items are found in this document.  User-
  106. defined items may adopt any internal encoding agreed by all users of the item.
  107.  
  108. 2.4 Presentation
  109.  
  110. The PACSAT File Header must always be transmitted without data compression, 
  111. even if compression is applied to the body of the attached file.
  112.  
  113. 2.5 Header Termination
  114.  
  115. The end of the PACSAT File Header will always be indicated by a header item 
  116. with <id> 0 and <length> 0.  The byte sequence is 0x00 0x00 0x00.
  117.  
  118. 3.0 THE PACSAT MANDATORY HEADER
  119.  
  120. The first two bytes of a PACSAT file should always contain 0xaa followed by 
  121. 0x55 to confirm that the file contains a PACSAT file header.  
  122.  
  123. The 0xaa, 0x55 sequence must be followed immediately by all items of the 
  124. Mandatory Header.
  125.  
  126. Mandatory Header items must be present in order of ascending value of <id>.
  127.  
  128. When preparing files for uploading to PACSAT, groundstations must initialize 
  129. header items as specified below.
  130.  
  131. 3.1.1 file_number
  132.  
  133. id              :    0x01      
  134. length          :    4
  135. data            :    unsigned long file_number
  136.  
  137. <file_number> is a 4-byte unsigned serial number assigned to a file by PACSAT 
  138. when the file is created.  This number uniquely identifies any file.  
  139.  
  140. Since the PACSAT file system makes no distinction between files and ``mes-
  141. sages'', the file number is analogous to a message serial number.  
  142.  
  143. INITIALIZATION - Must be initialized to 0.
  144.  
  145. 3.1.2 file_name
  146.  
  147. id              :    0x02      
  148. length          :    8
  149. data            :    char file_name[8]
  150.  
  151. <file_name> is the base name of the file as it is stored in the PACSAT file 
  152. system.  If the name is shorter than 8 characters, it is extended on the right 
  153. with ASCII spaces (0x20).
  154.  
  155. INITIALIZATION - Must be initialized to 8 ASCII spaces (0x20), allowing PACSAT 
  156. to choose its own name for the file.  The <user_filename> Optional item can be 
  157. used to communicate the file's native name to another user.  
  158.  
  159. 3.1.3 file_ext
  160. id              :    0x03      
  161. length          :    3
  162. data            :    char file_ext[3]
  163.  
  164. <file_ext> is a 3 character file name extension.  If the extension is shorter 
  165. than 3 characters, it is extended on the right with ASCII spaces (0x20).
  166.  
  167. INITIALIZATION - Must be initialized to 3 ASCII spaces (0x20), allowing PACSAT 
  168. to choose its own name for the file.  The <user_filename> optional item can be 
  169. used to communicate the file's native name to another user.  
  170.  
  171. 3.1.4 file_size      
  172.  
  173. id              :    0x04
  174. length          :    4
  175. data            :    unsigned long file_size
  176.  
  177. <file_size> is a 4-byte unsigned integer indicating the total number of bytes 
  178. in the file, including the HEADER_FLAG, all HEADER_FIELD structures, and the 
  179. file body.
  180.  
  181. INITIALIZATION - Correct <file_size> must be provided.
  182.  
  183. 3.1.5 create_time    
  184.  
  185. id              :    0x05
  186. length          :    4
  187. data            :    unsigned long create_time
  188.  
  189. <create_time> is a 4-byte unsigned integer time-stamp telling when the file 
  190. was created.  This time-stamp counts the seconds since Jan 1, 1970.
  191. INITIALIZATION - If <create_time> is initialized to 0, PACSAT will set the 
  192. time upon receiving the file header.  Otherwise PACSAT does not alter this 
  193. item.
  194.  
  195. 3.1.6 last_modified_time
  196. id              :    0x06      
  197. length          :    4
  198. data            :    unsigned long last_modified_time
  199.  
  200.  
  201. INITIALIZATION - If <last_modified_time> is initialized to 0, PACSAT will set 
  202. the time upon receiving the file header.  Otherwise PACSAT does not alter this 
  203. item.
  204.  
  205. 3.1.7 seu_flag
  206. id              :    0x07
  207. length          :    1
  208. data            :    unsigned char seu_flag
  209.  
  210.  
  211. Files stored on PACSAT may experience Single-Event Upsets, caused by radia-
  212. tion.  <seu_flag> is an unsigned 8-bit integer for which 3 values are current-
  213. ly defined:
  214.  
  215. 0 means there have been no Single Event Upsets detected in this file.  
  216.  
  217. 1 means that one or more correctable Single Event Upsets have occurred and 
  218. been corrected in this file.  It will be possible, though unlikely, that mul-
  219. tiple SEU-caused bit errors in a file block will cause an improper correction.  
  220. An overall file checksum is provided as additional protection.
  221.  
  222. 2 means that an uncorrectable corruption was detected in this file.
  223.  
  224. INITIALIZATION - this item must be initialized to 0.
  225.  
  226.  
  227. 3.1.8 file_type
  228.  
  229. id              :    0x08
  230. length          :    1
  231. data            :    unsigned char file_type
  232.  
  233. <file_type> is an unsigned 8-bit integer indicating what type of data is 
  234. presented in the file body.  Values for this item are defined in a separate 
  235. document.  The value 0xff is reserved as an escape indicator, in which case an 
  236. Optional item of type <file_description> must be provided.
  237.  
  238. INITIALIZATION - this item must be appropriately initialized. 
  239.  
  240. NOTE - It is intended that this item be used to limit the scope of message 
  241. searches, therefore, values will be defined for important types of files such 
  242. as: RLI/MBL compatible single messages, RLI/MBL compatible import files, VITA-
  243. only messages, etc.  See Appendix A for details.
  244.  
  245. 3.1.9 body_checksum
  246.  
  247. id              :    0x09
  248. length          :    2
  249. data            :    unsigned int body_checksum
  250.  
  251. A 16 bit checksum formed by adding all bytes in the file body into a 16 bit 
  252. variable, ignoring overflow.  The <body_checksum> does not include the 
  253. bytes comprising the PACSAT file header.
  254.  
  255. The <body_checksum> is primarily intended to detect mis-corrected multi-bit 
  256. errors caused by Single Event Upsets in the PACSAT memory.
  257.  
  258. INITIALIZATION - The correct <body_checksum> must be supplied.
  259.  
  260. 3.1.10 header_checksum
  261.  
  262. id              :    0x0a
  263. length          :    2
  264. data            :    unsigned int header_checksum
  265.  
  266. A 16 bit checksum formed by adding ALL bytes in PACSAT File Header, including 
  267. the leading 0x55 0xaa sequence, into a 16 bit variable, ignoring overflow.   
  268. This number is then stored as the <header_checksum>.  When calculating the sum 
  269. the 2 <header_checksum> data bytes are assumed to be 0, and the <body_check-
  270. sum> must have already been calculated.
  271.  
  272. The <header_checksum> is primarily intended to confirm correct header recep-
  273. tion during file transfers.
  274.  
  275. INITIALIZATION - the <header_checksum> must be correctly initialized.
  276.  
  277. 3.1.11 <body_offset>
  278.  
  279. id              :    0x0b
  280. length          :    2
  281. data            :    unsigned int body_offset
  282.  
  283. <body_offset> provides the byte offset of the first byte of the file body.  
  284. <body_offset> is taken with respect to the first byte of the file, which has 
  285. offset 0.  The byte at offset 0 contains the 0xaa marking the beginning of the 
  286. PFH.  Note also that <body_offset> is equal to the length of the PFH, in 
  287. bytes.
  288.  
  289. INITIALIZATION - <body_offset> must be correctly initialized.
  290.  
  291. 3.2 Mandatory Header Summary
  292.  
  293. The PFH Mandatory header will be present on every PACSAT file.  When preparing 
  294. to upload a file or message to PACSAT, groundstation software must create a 
  295. valid Mandatory header and insert it at the beginning of the file/message.
  296.  
  297. 4.0 THE PACSAT EXTENDED HEADER
  298.  
  299.  
  300. The PACSAT Mandatory Header defined above is designed for file transfer.  It 
  301. contains sufficient information to reliably upload and download PACSAT files, 
  302. including transfers spread over several satellite passes.  It does not contain 
  303. all the header fields which are desirable for forwarding BBS messages or for 
  304. implementing a complex PACSAT end-user message system.  The additional header 
  305. fields needed for these tasks are placed in the PACSAT file after the Mandato-
  306. ry Header.  
  307.  
  308. A standard set of message-related header fields called the PACSAT Extended 
  309. Header is described in this section.  All message files uploaded to PACSAT 
  310. should contain both the Mandatory and Extended headers.  
  311.  
  312. If a Extended Header is present, it must immediately follow the final item in 
  313. the Mandatory Header.
  314.  
  315. If any Extended Header item is present, all must be present.
  316.  
  317. Extended Header items must be present in order of ascending value of <id>, 
  318. with the exception that multiple destinations are represented by multiple 
  319. occurrences of items 0x14, 0x15, and 0x16.
  320.  
  321. 4.1  Extended Header Summary
  322.  
  323. The Extended Header provides necessary information concerning the source and 
  324. destination of a message file.  Source data is encoded in a variable-length 
  325. <source> item, which can contain any type of identifier.  The AX.25 address of 
  326. the station which uploaded the message is also provided, along with the time 
  327. at which the upload was completed.  Destination data is provided in the same 
  328. format, and provisions are made to allow a single message file to have several 
  329. specified destinations.
  330.  
  331. Three other items useful for PACSAT message handling are defined: 
  332. compression_technique, expire_time, and priority. 
  333.  
  334. 4.2.1 source
  335.  
  336. id              :    0x10
  337. length          :    variable
  338. data            :    char source[]
  339.  
  340. <source> is an ASCII string used to identify the originator of the file/mes-
  341. sage.  <source> can be a mixed-case string, containing any character from 0x20 
  342. to 0x7e. 
  343.  
  344. INITIALIZATION - This item should contain the address of and possibly the 
  345. route to the file originator.  Exact details of the use for this item must be 
  346. agreed among parties using PACSAT for message forwarding.  
  347.  
  348. Stations using PACSAT as their ``home BBS'' are requested to use the form 
  349. <call> @ OSCAR<num>, e.g. G0K8KA @ OSCAR14.
  350.  
  351. VITA will devise its own addressing scheme, which should be used by VITA 
  352. groundstation software.
  353.  
  354. 4.2.2 ax25_uploader
  355.  
  356. id              :    0x11
  357. length          :    6
  358. data            :    char ax25_uploader[]
  359.  
  360.  
  361. Contains the ax.25 address of the station which uploaded the file.  The SSID 
  362. is not included in this address.  If the callsign is less than 6 characters 
  363. long, it will be filled to 6 characters by appending spaces (0x20) on the 
  364. right.
  365.  
  366. INITIALIZATION - No initialization required.
  367.  
  368. 4.2.4 upload_time
  369.  
  370. id              :    0x12
  371. length          :    4
  372. data            :    unsigned long upload_time
  373.  
  374. This field tells the time at which the upload was completed.  If the upload is 
  375. still in progress, upload_time will be 0x0000.  <upload_time> is an unsigned 
  376. integer counting the number of seconds since 0000 UTC Jan 1, 1970.
  377.  
  378. INITIALIZATION - Must be set to 0.  
  379.  
  380. 4.2.5 download_count
  381.  
  382. id              :    0x13
  383. length          :    1
  384. data            :    unsigned char download_count
  385.  
  386.  
  387. <download_count> is an 8-bit unsigned integer incremented each time the asso-
  388. ciated file is successfully downloaded.  
  389.  
  390. INITIALIZATION - set to 0.
  391.  
  392. 4.2.6 destination
  393.  
  394. id              :    0x14
  395. length          :    variable
  396. data            :    char destination[]
  397.  
  398. <destination> is an ASCII string used to identify the originator of the 
  399. file/message.  <destination> can be a mixed-case string, containing any char-
  400. acter from 0x20 to 0x7f. 
  401.  
  402. INITIALIZATION - PACSAT makes no attempt to interpret this item.  It must be 
  403. initialized to an address which will be recognized by the station intended to 
  404. download the message.  When addressing messages to stations using PACSAT as a 
  405. ``home bbs'', please use <callsign> @ OSCAR<num>, e.g. NK6K @ OSCAR16.
  406.  
  407. 4.2.7 ax25_downloader
  408.  
  409. id              :    0x15
  410. length          :    6
  411. data            :    char ax25_downloader[6]
  412.  
  413. <ax25_downloader> is the ASCII address of the groundstation which has down-
  414. loaded this file for the recipient specified in the immediately preceding 
  415. <destination> item.
  416.  
  417. A <destination> item  must be immediately followed by an <ax25_downloader> 
  418. item.
  419.  
  420. INITIALIZATION - Must be initialized to six ASCII blanks - 0x20.
  421.  
  422. 4.2.8 download_time
  423.  
  424. id              :    0x16
  425. length          :    4
  426. data            :    unsigned long download_time
  427.  
  428. <download_time> is the time at which the message was completely downloaded by 
  429. the immediately preceding <ax25_downloader> groundstation.  <download_time> is 
  430. an unsigned integer counting the number of seconds since 0000 UTC January 1, 
  431. 1970.
  432.  
  433. An <ax25_downloader> item must be immediately followed by a <download_time> 
  434. item.
  435.  
  436. INITIALIZATION - Set to 0.
  437.  
  438. NOTE - A message may have several intended destinations.  For each destina-
  439. tion, the PFH Extended header must contain header items 0x14, 0x15 and 0x16.  
  440. Multiple destinations are numbered in the order of occurrence; the first 
  441. <destination> <ax25_downloader> <download_time> set is destination 0, the next 
  442. destination 1, etc.
  443.  
  444. 4.2.11 expire_time
  445.  
  446. id              :    0x17
  447. length          :    4
  448. data            :    unsigned long expire_time
  449.  
  450. <expire_time> is the time after which this file should be considered inactive.  
  451. As with other timestamps, this field is an unsigned long integer counting 
  452. seconds since Jan 1, 1970.  Expired files may be purged by the PACSAT when 
  453. more free file space is needed.
  454.  
  455. INITIALIZATION - Groundstations may set this field in uploaded files, or may 
  456. leave it set to 0.  If a groundstation-selected <expire_time> is within system 
  457. limits, it will be retained, otherwise the PACSAT will choose its own 
  458. <expire_time>.
  459.  
  460. 4.2.12 priority
  461.  
  462. id              :    0x18
  463. length          :    1
  464. data            :    unsigned char priority
  465.  
  466. This field carries the message priority field.  Higher numbers are considered 
  467. higher priority than lower numbers.  
  468.  
  469. INITIALIZATION - The groundstation must initialize this field.  Groundstation 
  470. software should exercise some control over the user's abuse of this field, so 
  471. that it retains some meaning in operation!  Over use of high priorities re-
  472. duces the utility of this field.
  473.  
  474. 5.0 OPTIONAL HEADER ITEMS
  475.  
  476. The Mandatory Header and Extended Header may be followed by any number of 
  477. Optional Header items.  It is intended that any expansion of the PFH defini-
  478. tion will involve only addition of Optional Items
  479.  
  480. Optional Header items need not be presented in increasing order of <id>.
  481.  
  482. 5.1 System-defined Optional Header Fields
  483.  
  484. 5.1.1 compression_type
  485.  
  486. id              :    0x19
  487. length          :    1
  488. data            :    unsigned char compression_technique
  489.  
  490. The body of a PACSAT message may be compressed to reduce the communications 
  491. bandwidth and on-board storage required for the message.  Groundstations, and 
  492. not PACSAT, must compress and de-compress PACSAT files.  
  493.  
  494. The <compression_type> item is a 1-byte unsigned binary integer.  Values are  
  495. available for assignment to common compression schemes.  <compression_type> 
  496. 0xff is reserved as an escape code indicating that additional information is 
  497. to be found in a <compression_description> item.
  498.  
  499. Currently assigned values can be found in Appendix B.
  500.  
  501. INITIALIZATION - If present, must be correctly set by the uploading station.  
  502.  
  503. 5.1.1 bbs_message_type
  504.  
  505. id              :    0x20
  506. length          :    1
  507. data            :    char bbs_message_type
  508.  
  509. This field carries the single ASCII character used to indicate message type on 
  510. RLI/MBL BBS messages.  
  511.  
  512. 5.1.2 bulletin_id_number 
  513.  
  514. id              :    0x21
  515. length          :    variable
  516. data            :    char bid[]
  517.  
  518. The <bid> item holds an ASCII string uniquely identifying the file/message.  
  519. This field is used by terrestrial BBSs to stop the duplication of flood bulle-
  520. tins. 
  521.  
  522.  
  523. INITIALIZATION - PACSAT will not itself initialize <bid> on an uploaded file.  
  524. It is the responsibility of the uploading station to initialize this field, if 
  525. the message is a bulletin intended for introduction into the Amateur Radio 
  526. PBBS network.
  527.  
  528. 5.1.3 title
  529.  
  530. id              :    0x22
  531. length          :    variable
  532. data            :    char title[]
  533.  
  534. This field carries the ASCII string message title.  Most messages will have a 
  535. <title>, initialized by the user to indicate the contents of the message.  In 
  536. some systems, this is called the Subject.
  537.  
  538. 5.1.4 keywords
  539.  
  540. id              :    0x23
  541. length          :    variable
  542. data            :    char keywords[]
  543.  
  544. This field carries one or more ASCII keywords describing the file/message.  
  545. Multiple keywords must be separated by at least one ASCII space character 
  546. (0x20).
  547.  
  548. 5.1.5 file_description 
  549. id              :    0x24
  550. length          :    variable
  551. data            :    char file_description[]
  552.  
  553. The <file_description> item is used only if none of the system standard 
  554. <file_type> values can adequately describe the file body.
  555.  
  556. A <file_description> item is up to 255 ASCII characters describing the format 
  557. of the file body.  This field must be included if the <file_type> field in the 
  558. Mandatory Header is set to 0xff.  
  559.  
  560. For example, an uploading station might set the <file_type> to 0xff and 
  561. <file_description> to ``This body contains all of the files associated with a 
  562. Ventura Publisher document''.
  563.  
  564. 5.1.6 compression_description 
  565.  
  566. id              :    0x25
  567. length          :    variable
  568. data            :    char compression_description[]
  569.  
  570. A compression_description item is used when a non-standard method of file-body 
  571. compression has been used.  
  572.  
  573. The item is up to 255 ASCII characters describing the method or (preferably) 
  574. providing a reference to further information concerning the method.  The field 
  575. must be present when compression_technique in the fixed portion of the Extend-
  576. ed File Header is set to 0xff.
  577.  
  578. For example, an uploading station might set compression_technique 0xff and 
  579. compression_description to ``Compressed using bmpack version 1.4, see file 
  580. with title = ``BMPACK specification''.
  581.  
  582. 5.1.7 user_file_name
  583.  
  584. id              :    0x26
  585. length          :    variable
  586. data            :    char user_file_name[]
  587.  
  588. This field is used by groundstations using PACSAT as a file switch to transfer 
  589. named files.  The originating station places the desired file name in a 
  590. user_file_name field, and the destination station uses this field as the name 
  591. of the file after it has been received.  
  592.  
  593. This field is included in addition to the file_name field because the 
  594. file_name field is strictly constrained by PACSAT (e.g. no two files may have 
  595. the same file_name, and the name must be no longer than 8 characters with a 3 
  596. character extension).  The file_name is used by PACSAT for internal purposes, 
  597. and this item, user_file_name is used for end-to-end transparent communication 
  598. of a file name.
  599.  
  600. 6.0 Implementation Status
  601.  
  602. Files with these headers are currently in use on the PACSATs.  Additional 
  603. system header items may be added from time to time, as well as file and com-
  604. pression types.  To suggest new standard items, contact the authors.
  605.  
  606. Address comments to:
  607.  
  608. Telemail:            HPRICE or UOSAT
  609. Compuserve:          71635,1174
  610. Packet:              NK6K @ WB6YMH
  611.                     or G0K8KA @ GB2UP
  612. Internet:            71635.1174
  613.                     @COMPUSERVE.COM
  614. Mail:               Jeff Ward
  615.                     UoSAT Unit
  616.                     University of Surrey
  617.                     Guildford, Surrey  GU2 5XH
  618.                     UK
  619.  
  620. APPENDIX A - PACSAT FILE TYPES 
  621.  
  622. Unless explicitly stated, a file of any <file_type> can have a compressed 
  623. body.  If the body is compressed, its PFH must contain the optional <compres-
  624. sion_type> item.  The PFH is never compressed.
  625.  
  626. 0x00           ASCII  text  file intended for  display/printing.  Not  Com-
  627.                pressed.
  628. 0x01           RLI/MBL message body. Single message. 
  629. 0x02           RLI/MBL import/export file.  Multiple message.
  630. 0x03           UoSAT Whole Orbit Data 
  631. 0x04           Microsat Whole Orbit Data 
  632. 0x05           UoSAT CPE Data
  633. 0x06           MS/PC-DOS .exe file
  634. 0x07           MS/PC-DOS .com file
  635. 0x08           Keplerian elements NASA 2-line format
  636. 0x09           Keplerian elements ``AMSAT'' format
  637. 0x0a           Simple ASCII text file, but compressed.
  638. 0xff           ESCAPE - indicates that the message header includes a varia-
  639.                ble- length body_description item (see below) describing the 
  640.                body type, or providing a reference for further information.  
  641.                This code will be used for new techniques, until they can be 
  642.                assigned a formal identifier.
  643.  
  644.  
  645.  
  646. APPENDIX B - PACSAT COMPRESSION TYPES (PROPOSED)
  647.  
  648. 0x00           body not compressed
  649. 0x01           body compressed using PKARC
  650. 0x02           body compressed using PKZIP
  651.  
  652. There is no intent to limit compression types to the IBM-PC.  The prototype 
  653. implementation of the ground station software is PC based.  
  654.  
  655. 
  656.